#lang rosetta-racket


(provide normal-cone-frustum
         normal-cone-frustum-inv
         stretched-cone-frustum
         stretched-cone-frustum-inv
         shrunk-cone-frustum
         shrunk-cone-frustum-inv)


(define (normal-cone-frustum)
  (lift
   (thunk (displayln "Normal cone frustum"))
   (cone-frustum 1 1 0.5)))

(define (normal-cone-frustum-inv)
  (lift
   (thunk (displayln "Normal cone frustum inverted"))
   (cone-frustum (x 2) 0.5 1 1)))

(define (stretched-cone-frustum)
  (lift
   (thunk (displayln "Stretched cone frustum"))
   (cone-frustum (x 4) 1 2 0.2)))

(define (stretched-cone-frustum-inv)
  (lift
   (thunk (displayln "Stretched cone frustum inverted"))
   (cone-frustum (x 6) 0.2 2 1)))

(define (shrunk-cone-frustum)
  (lift
   (thunk (displayln "Shrunk cone frustum"))
   (cone-frustum (x 8) 1 0.3 0.8)))

(define (shrunk-cone-frustum-inv)
  (lift
   (thunk (displayln "Shrunk cone frustum inverted"))
   (cone-frustum (x 10) 0.8 0.3 1)))